iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
AI/ ML & Data

輕鬆上手AI專案-影像分類到部署模型系列 第 14

[Day 14] 我的模型訓練好了嗎?overfitting 是關鍵!

  • 分享至 

  • xImage
  •  

前言

我們已經學會如何編譯和訓練模型,在這過程中我們會先設定訓練週期,但要如何得知模型要訓練到什麼程度才是可以的?那就要看訓練的模型到底有沒有 Overfitting。

Overfitting

Overfitting 在訓練模型的過程中是一個很常發生的現象,也是需要去發生的現象。如果在訓練模型時,發現訓練資料集的評估數值上表現很好,但在新的或是未見過的資料集表現卻沒有很好(如驗證資料集),即為 Overfitting。François Chollet《Deep Learning with Python, Second Edition》一書中提到,可以訓練至訓練資料集表現好,但驗證資料集表現卻開始下降的折返點(該週期數)(但這種方法需要重新訓練模型至該週期停止,之後會介紹一種方法,可以不用這麼麻煩~)。訓練深度學習模型的目標需要先訓練一個模型至 Overfitting,再進行調整。

為什麼還要進行調整,不能就 Overfitting 嗎?可以當作模型訓練(學習)就像是在背餵給它的資料集這個「題庫」,如果一直狂記猛記死背下這整個題庫,之後碰到新的題目或沒看過的題目,可能就會回答不出來了(就像是「學僵了」)。模型可能會去特別學習一些較為偏頗的資料,例如模糊特徵、罕見特徵、虛假關聯或是具有雜訊的資料等。我們希望模型有 Generalization 的特性,要能盡量適用於沒見過的新資料上,不會希望它被這些偏頗的資料受到影響,所以 Overfitting 的模型才會需要去調整。

造成原因

造成 Overfitting 的原因有很多種可能,如複雜的模型結構(不適合所選的資料集)導致學習到太多細節;訓練的資料數少,無法學習到「通用」的原則;訓練的資料特徵種類多樣性較低,可以檢查有沒有先進行資料洗牌(可能會因為檔案名稱編排及讀取順序關係,導致相似的影像特徵被選取到),或是可以使用資料增強方式讓資料特徵多樣化,也要注意特徵的選擇(不是愈多就愈好)等,還有其他原因可能也會造成 Overfitting。

解決方法

可以增加訓練資料數量,增加資料集多樣性;使用正則化(之後會介紹)去限制模型複雜度,或是使用 EarlyStopping 方法(之後也會介紹)等,提高模型的 Generalization 能力。

今天比較偏觀念的講解,明天會開始介紹正則化方法,會有範例程式碼,就比較不枯燥乏味了~/images/emoticon/emoticon28.gif

參考資料

  • François Chollet《Deep Learning with Python, Second Edition》(中文版:黃逸華、林采薇譯《Keras大神歸位:深度學習全面進化!用Python 實作CNN、RNN、GRU、LSTM、GAN、VAE、Transformer》,旗標出版)

上一篇
[Day 13] 評估模型的方法:評估數值
系列文
輕鬆上手AI專案-影像分類到部署模型14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言